Loading...
 

Flag Information

Flag Overview

General Widget Flags

Among other things, widget flags can be used next to widget properties in the declaration of a Window object.

Flag Description Internal representation Integer
ACCEPT_DROP On the combo object box, the object box or the window, objects dragged from an object box across the screen can be placed with drag-and-drop. What to do with the objects must be described in the action list. 0x00001000 4096
AUTO_POSITION The X-positions are calculated automatically, so you do not need to specify them explicitly with SetFormat. 0x00040000 262144
BACK
208673
The flag BACK can be added to a button to mark it as a back button for the window it covers. If the escape key is pressed on a widget that does not define an ESC event, the SELECT event is triggered on this button. 0x1000 4096
BITMAP_SIZE If bitmaps are displayed (generated via a push statement in a SetFormat), they are stretched to column width without this flag. This only occurs if the width of the column is predefined (for example, by a header) or if the column width is not only determined by the bitmaps due to additional strings in the column despite AUTO_POSITION. Specifying the flag prevents this, so that each bitmap is guaranteed to be displayed in its original size. 0x00000800 2048
CHECK_MARK The item indicates its selection by a 'tick'. The current state can be queried with GetValue and set with PutValue. 0x00000100 256
DEFAULT

The DEFAULT flag can be added to a button. This marks the button as the default button for the window containing it. If a SELECT event is triggered on a widget that does not define a SELECT event, the event is forwarded to the default button.

This is especially useful when a form needs to be filled out for which there is only one way to proceed.

(See also description of the DEFAULT flag in the description of the button)

0x800 2048
DRAG_COPY The currently selected objects can be dragged to another object box or to a window with the right mouse button (drag and drop). The objects can only be dropped on a target with the flag ACCEPT_DROP. The list box entries are retained. 0x00000400 1024
DRAG_MOVE As with DRAG_COPY the currently selected objects can be dragged to another object box or to a window. The corresponding list box entries are deleted if the objects were stored in another list box or window with the flag ACCEPT_DROP. 0x00002000 8192
DYNAMIC_POSITIONING Size and position of the window object are not determined by its coordinates, but by the parent window. The window object occupies the entire client area of its parent window and adapts to it when the size of the window is changed interactively. 0x00000200 512
ENTIRE The following mode exists for displaying a collection or m-1 or m-n relation with FillWindow and DrainWindow: The object box only displays the objects of the collection, m-1 or m-n relation. This mode is activated with the ENTIRE flag. 0x00000800 128
HIDDEN The enumeration, object box or window object remains invisible until the Show statement makes it appear on the screen. 0x00000002 2
HZ_SCROLL_BAR The object box has a horizontal scrollbar in addition to the vertical one. 0x00000020 32
IGNORE_RECURSION When a structure is read in, the system does not check whether an object to be inserted already exists at the insertion point as a higher-level object or as an object that is itself higher-level (parent parent, etc.). With 0 SetLimit and 0 SetLevels this can lead to an endless loop of the program! If, on the other hand, SetLevels is used to prevent a complete read-in, i.e. the respective subordinate objects are only read in when required, this flag allows the structural dependency to be displayed correctly. In this case, however, ExpandAll or pressing the '/' (Divide) key can also lead to an endless loop. 0x20000000 536870912
IMMEDIATELY Closes the window immediately (and not delayed, see above) This flag should only be used in connection with automatic tests: Automatic tests make it easier to open many windows simultaneously. However, each window uses a number of system resources. Delayed closing would release these resources only at the end of the test series, thus unnecessarily blocking resources used during the test. - -
JUSTIFY_CENTER The entered character string appears centered in the input field. 0x00000001 1
JUSTIFY_RIGHT The entered character string appears right-justified in the input field. 0x00000002 2
LIST_INVALID Normally only valid objects are included in an object box. However, if this flag is set, invalid objects are also included and displayed. 0x00000200 512
LIST_ORIGIN If an invalid object is inserted into a ListView and there is a valid exchange object, the valid exchange object is normally included. This flag prevents this so that only the valid original object is included. The interaction with LIST_INVALID is explained in more detail below. 0x00200000 2097152
LOCKED

Widget: The widget is locked. This state can be removed by Unlock.

Window: The window cannot be closed interactively (the corresponding item in the system menu is inactive).

0x00000200 512
LOWER_CASE Entered characters are converted to lower case. 0x00000002 2
NO_CLEAR The input field is not deleted by ClearWindow. 0x00001000 4096
NO_COLUMNHEADER No column descriptions are displayed. 0x00400000 4194304
NO_DRAIN The enumeration, the input field or the object box is filled by FillWindow but ignored by DrainWindow. This flag is only useful for windows that are linked to the OboxEdit statement. NO_DRAIN is used to determine whether the automatic writing of changes back into the window (by an implicit DrainWindow) should be suppressed. 0x00080000 524288
NO_MOVE The window cannot be moved interactively. 0x00000080 128
NO_PRINT The widget with this flag will not be printed when printing with PutLine 0x00000010 16
NO_SIZE The window cannot be interactively enlarged or reduced. 0x00000040 64
NO_SORTHEADER The column headers are not displayed as buttons, so the list cannot be sorted by pressing a button on a column header. However, you can still change the column width and also move columns. 0x00000100 256
NON_SELECTABLE The button cannot be pressed or no data can be entered in an input field. Its text or the data are displayed in grey. 0x00000400 1024
NULL_ELEMENT The combo object box automatically creates an entry that does not refer to any object. A NULL element is useful if the object box is used with FillWindow and DrainWindow to represent a pointer or a 1-1 or 1-m relation. 0x00000400 1024
OPTIMIZE The optimization refers to the access expressions for the columns of the list (compare the SetFormat statement): identical partial expressions are evaluated only once (further notes ...). 0x00010000 65536
OVERWRITE statement DrainWindow writes to the data field connected to the window object, such as Put(..., OVERWRITE). This flag is only effective if DrainWindow is executed for an object of the class CX_OVERWRITING_REF (or one derived from it). 0x00000001 1
PASSWORD Entered characters are displayed as *. 0x00000008 8
QUICK_DISPLAY To determine whether an expansion character () is displayed for the respective node, you must determine whether subnodes exist for it. However, this can be very time-consuming, since a large number of objects may have to be checked (if a large number of objects exist in a class for which subnodes may exist, but none of the existing objects fulfill the required filter condition). To save yourself this effort, you can set this flag. In this case, expansion flags are always set for all nodes below the level set with SetLevels, even if no subnodes exist. In the latter case, the expansion sign would simply disappear when clicked without adding subnodes. 0x00000800 2048
SELECT_MULTIPLE MenuItem:
If there are several items with the CHECK_MARK flag among the items belonging to the menu, flag SELECT_MULTIPLE determines that the items can be selected independently of each other. Without SELECT_MULTIPLE, the previously active item is deselected when a check mark item is selected, that is, only one item is selected at a time.

Groups/Windows:
A group has the property to trigger the message SELECT for an existing widget as soon as it receives the focus. Radio buttons react to this SELECT in a special way: All other radio buttons and check boxes within the group are deselected as soon as a widget is selected.
This behavior is unusual for all other widgets, because here a SELECT is already triggered during focusing. The SELECT_MULTIPLE flag prevents a SELECT from being triggered for a group. Therefore: Groups with radio buttons must not have the SELECT_MULTIPLE flag set, all other groups must have the flag set!
Windows with a radio button group must also not have a default button. This would be "pressed" as soon as a radio button was selected.
Check-Boxes behave in this case like the radio buttons, only that it often occurs that several check boxes are to be activated and thus the flag SELECT_MULTIPLE must be set situationally.
It can also happen that radio buttons or check boxes have been defined directly under a window. In this case it must be checked whether the widgets should be activated all at once (SELECT_MULTIPLE set), or only activated individually.

0x00000002 2
TOGGLE When the button is pressed, it switches between the states 'pressed in' (corresponds to value TRUE) and 'raised' (initial state, corresponds to FALSE). The state can be queried with GetValue and set with PutValue. 0x00000008 8
TRANSPARENT The text background of the prompt appears transparent. This flag is only useful if the prompt is to be placed over colored areas or a background image. 0x00200000 2097152
UPPER_CASE Entered characters are converted to capital letters. 0x00000001 4
VIEW_ONLY The input field can only display data, but you cannot enter characters interactively. 0x00000010 16

window flags

Window
Flag Description
LOAD The window is opened at program start. Windows without this flag must be explicitly brought to the screen with OpenWindow. If the LOAD flag was not specified for any window, the first defined window is still opened.
LAYOUT A simple geometry management is applied when changing the window size. Based on the coordinates given, size changes are tracked proportionally. For more sophisticated layout management, see Attach and Constraint.
STARTUP The window appears during the startup phase of the system. After that it disappears automatically and Windows with the LOAD flag are opened.
BACKGROUND_KEEP_RATIO
190484
The graphic of the background is scaled around the center of the window so that the aspect ratio is maintained, but the window is always completely filled.
BITMAP_SIZE If a graphic is specified for the background, it determines the size of the window (parameters w and h are ignored). Without flag BITMAP_SIZE the graphic adapts to the size of the window and is compressed or stretched accordingly.
CONTROL_WINDOW

The window becomes the main window. The flag is preferable to the command ControlWindow for the sake of clarity, if possible. The window then behaves as if the command ControlWindow was executed when the window was opened.

MODAL If a window is opened with the MODAL flag, the other windows that are visible on the screen at the same time are no longer accessible to the application interactively. You use this flag if the window sends a request to the user and you want to force him to react now.
FLOAT 190484 A window marked FLOAT always remains in the foreground. However, in contrast to MODAL, the other windows can still be operated.
VT_SCROLL_BAR The window gets a vertical scrollbar. IMPORTANT! The scrollbar is only displayed if the widget is outside the visible area.
HZ_SCROLL_BAR The window gets a horizontal scrollbar. IMPORTANT! The scrollbar is only displayed if the widget is outside the visible area.


Notebook Flags

NOTEBOOK

Flag Internal representation Integer
NB_TAB_LEFT Tabs appear on the left side of the notebook. 0x0002 2
NB_TAB_RIGHT Tabs appear on the right side of the notebook. 0x0004 4
NB_TAB_BOTTOM Tabs appear at the bottom of the notebook. 0x0008 8

Numeric flags

The display of a number can be controlled by the following flags:

Flag Description Internal representation Integer
NF_0_DECIMALS Mapping of integer numbers 0x0100 256
NF_1_DECIMALS Number is displayed with one decimal place 0x0200 512
NF_2_DECIMALS Number is displayed with two decimal places 0x0300 768
NF_3_DECIMALS Number is displayed with three decimal places 0x0400 1024
NF_4_DECIMALS Number is displayed with four decimal places 0x0500 1280
NF_5_DECIMALS Number is displayed with five decimal places 0x0600 1536
NF_6_DECIMALS Number is displayed with six decimal places 0x0700 1792
NF_7_DECIMALS Number is displayed with seven decimal places 0x0800 2048
NF_8_DECIMALS Number is displayed with eight decimal places 0x0900 2304
NF_AUTOMATIC_DECIMALS The number of decimal places considered depends on the number. This value can be set with the SetPrecision function. 0x0040 64
NF_FORCED_SIGN Forces the output of the sign 0x8000 32768
NF_SET_PRECISION The value Object takes the number of decimal places as entered. 0x0002 2
NF_SIG_PRECISION The number of decimal places taken into account depends on the number of significant (non-zero) decimal places. 0x0a00 2560
NF_UNIT_PRECISION (Only from CX_VALUE) The number of decimal places displayed is controlled by the accuracy specification of the object unit (output only). The flag has higher priority than the NF_AUTOMATIC_DECIMALS flag. 0x0c00 3072
NF_BLANCS Represents the zero as a space 0x0080 128
NF_CREDIT If the number is negative, it is shown enclosed in brackets, so that, for example, "-5" is displayed as "(5)". 0x0004 4
NF_DIMENSIONED If it is a value, the unit is also output. 0x0001 1
NF_NO_DECIMAL_SEPARATOR When reading a number, the separator between integer and decimal part may be missing. 0x0020 32
NF_NO_EXPORT_DECIMAL_SEP When outputting a number, the separator between integer and decimal part is omitted. 0x2000 -
NF_NO_FLAGS No Flags 0x0000 -
NF_PERCENT Representation with percentage sign 0x0010 16
NF_THOUSANDS_SEPARATOR A separator is inserted into the number after every 3 digits. For example, the number "1000000" is displayed as "1.000.000". The specification after how many characters a separator should be inserted is made by the location-specific data and can thus be changed. 0x0008 8
PF_NUMERATOR When an object of class CX_PERCENT_PER or CX_VALUE_PER is output, only the counter is taken into account. 0x1000 4096


Date Flags

The display of a date can be controlled by the following flags:

Flag Description Internal representation Integer
DF_ALLOW_2DIGIT_INPUT The date can be entered with 2 consecutive digits (without separator). The current month and year are automatically added. This flag must not be entered together with DF_JAPANESE_FORMAT (format YY.MM.DD) or DF_US_FORMAT (format MM.DD.YY). 0x20000 131072
DF_ALLOW_4DIGIT_INPUT The date can be entered with 4 consecutive digits (without separators). The current year is automatically added. This flag must not be entered together with DF_JAPANESE_FORMAT (format JJ.MM.TT). 0x10000 65536
DF_ALLOW_INCOMPLETE_DATE Processing of an incomplete date is permitted, i.e. entries such as "5.7" (corresponding to 5 July) can be made. 0x02000 8192
DF_ALLOW_ZERO_DATE Processing of a completely undefined date, i.e. the date is completely unknown. It is entered either as nothing ("") or as an incomplete date (?.?.?). Otherwise, the following error occurs: Error 173 - Without a flag set, an undefined date ('zero date') cannot be set. 0x08000 32768
DF_ALPHA_MONTH The month is given as text, e.g. 5 July 1996 0x00040 64
DF_ASIAN_FORMAT Asian date format: YYYY.MM.DD 0x00004 4
DF_DASH Minus sign '-' as separator between the date parts, e.g. 5-7-1996 0x00010 16
DF_DAY_OF_WEEK The day of the week is also specified, e.g. Friday, 5.7.1996 0x00080 128
DF_EUROPEAN_FORMAT European date format: DD.MM.YYYY 0x00002 2
DF_JAPANESE_FORMAT Japanese date format: YYYY.MM.DD 0x00004 4
DF_MILITARY_FORMAT Military date format of the US Air Force: There are two standards. The date output is either with a written out month and a four-digit year, e.g. 5 July 1996, or in combination with (DF_SHORT_YEAR and DF_SHORT_MONTH) with an abbreviated month and two-digit year, e.g. 5 Jul 96. 0x00008 8
DF_NO_FLAGS No flags, i.e. use of the default setting. - -
DF_SHORT_DAY Day of the week is abbreviated with, e.g. Di., 26.11.1996 0x00800 2048
DF_SHORT_MONTH Month is abbreviated to, e.g. 26. Nov. 1996 0x00400 1024
DF_SHORT_YEAR Year is abbreviated with, e.g. 26.11.96 0x00200 512
DF_SLASH Slash '/' as separator between the date parts, e.g. 26/11/1996 0x00020 32
DF_SYSTEM Places the current system date in the date object if an "empty" date is read. 0x04000 16384
DF_UPPER_CASE All text is in capital letters, e.g. 26 NOVEMBER 1996. The flag does not change the actual format. If no letters are contained, there is no effect. 0x00100 256
DF_US_FORMAT American date format: MM.DD.YYYY 0x00001 1
DF_ZERO_FILL Daily and monthly details always consist of two digits, e.g. 05.07.1996 0x01000 4096

Time Flags

The display of a time can be controlled by the following flags:

Flag Description Internal representation Integer
TF_COLON_SEPARATOR The colon ':' as separator between the individual time components. 0x0080 128
TF_HUNDREDTHS Processing of hundredths of a second. 0x0002 2
TF_LOWER_CASE Text output is in lower case. 0x0400 1024
TF_NO_FLAGS No flags. 0x0000 0
TF_NO_HOURS The time is output without specifying the hours. 0x0004 4
TF_NO_MINUTES Output of the time is without indication of the minutes. 0x0008 8
TF_NO_SEPARATOR The time is given without separator. 0x0100 256
TF_SECONDS Processing of seconds. 0x0001 1
TF_SYSTEM Sets the current system time in the time object if an "empty" time is read in. 0x0800 2048
TF_TWELVE_HOUR American time format with 12 hours. 0x0010 16
TF_TWENTY_FOUR_HOUR European time format with 24 hours. 0x0020 32
TF_UPPER_CASE Text output is in large print. 0x0200 512
TF_ZERO_FILL Output with leading zeros (hour and minute always consist of two digits) 0x0040 64

Conditional table

The evaluation of a conditional object table can be controlled by the following flags:

Flag Description Internal representation
CF_COMPULSORY If no entry is found, an error message is displayed (specify both flags together). 0x1
CF_REPORT 0x2
CF_NEGLECT If a variable cannot be bound, the affected condition is evaluated to FALSE and no error is reported.
For conditions, the evaluation function Evaluate2 is used.

If the conditional table is evaluated to a value within a term (or when calling Amount), 0.0 (CX_NUMERIC) is returned if no condition of the table is fulfilled. (This does not apply to query and pick)
0x4
CF_DYNAMIC_BINDINGFor conditions, the Evaluate3 evaluation function is used and an error is reported if the formula contains missing variables and no BindMessage is set.0x8

If neither CF_NEGLECT nor CF_DYNAMIC_BINDING are set, then conditions are evaluated via Evaluate3 if BindMesage is set and via Evaluate1 otherwise.


Units Divisions

A unit area represents the combination of several units. For example, all length specifications form a range. In addition, the combination of several ranges can also be considered a new range. The following table lists all ranges that are available:

Flag Area Unit example Internal representation Integer
UF_ALL_UNITS all areas combined - - -
UF_AREA Areas Square meter (m²) 0x00400000 4194304
UF_ANGLES Angle degrees (º) 0x20000000 536870912
UF_BYTE Byte KByte 0x10000000 268435456
UF_COMPOUND composite units Newton (N) 0x04000000 67108864
UF_CURRENCY Currencies US Dollar (USD) 0x02000000 33554432
UF_DURATION Times Minute (min) 0x00080000 524288
UF_LENGTH Lengths Meters (m) 0x00200000 2097152
UF_PACKING Packaging Cans 0x00100000 1048576
UF_PIECES Quantities Dozen 0x00010000 65536
UF_TEMPERATURE Temperatures degrees Celsius (ºC) 0x500001C0 1342177728
UF_VOLUME Room details Cubic meter (m³) 0x00800000 8388608
UF_WEIGHT Weights Kilogram (kg) 0x01000000 16777216


Phone Flags

These flags control the conversion of phone numbers stored in CX_PHONE objects into strings. When a CX_PHONE object is view exported, on the one hand the passed flags are used and on the other hand the current locale is used. The following table lists all possible flags. For the example it is assumed that the phone number "+49-40-209401-37" is stored in the data field and the locale is set to the number "+49-40-209401-0".

Flag Description Example Internal representation Integer
FF_DELIMITER_DASH A hyphen '-' is used as separator. This character is used to separate the parts country code, area code, phone number and extension. -37 0x0000 0
FF_DELIMITER_SPACE The separator is a space character. 37 0x0001 1
FF_DELIMITER_SLASH A slash '/' separates the individual parts of the telephone number. Only one of these 3 flags can be used at a time, they cannot be combined! /37 0x0002 2
FF_DELIMITER_NONE No separator is used. 37 0x0003 3
FF_EXTENSION_DELIMITER_DASH A hyphen '-' separates the extension number from the rest of the number, regardless of what has been set as the separator. This makes it easier to highlight the extension number if, for example, the space character was selected as the separator. -37 0x0004 4
FF_DISPLAY_AREACODE Always display the area code (if one is available), even if it is not necessary because the connection and your location are in the same city or region. 040-209401-37 0x0008 8
FF_DISPLAY_COUNTRYCODE Analogous behaviour for the country code. This flag additionally activates FF_DISPLAY_AREACODE. 0049-40-209401-37 0x0010 16
FF_EMPHASIZE_AREACODE When the area code is displayed, this flag highlights the area code by putting it in brackets (with round brackets). If no area code is required, this flag has no effect. (040)-209401-37 0x0020 32
FF_EMPHASIZE_COUNTRYCODE Analogous behaviour for the country code. (0049)-40-209401-37 0x0040 64
FF_RESOLVE_VANITY Resolve the vanity codes by converting letters in the phone number into numbers. Useful if no letters are printed on the phone keypad or if these are not vanity codes. -37 0x0080 128
FF_DIALTONE CODE With telephone systems it is often the case that a code, e.g. a zero, must be dialled to get an outside line. Such a code is specified in the locale. If this code should be prefixed to the telephone number, this flag must be specified. 0-37 0x0100 256
FF_INTL_FORMAT Formats the phone number in international format. It begins with a '+' and contains exactly three hyphens '-' separating the individual ranges. If this flag is specified, all other flags except the FF_DELIMITERs and FF_RESOLVE_VANITY are ignored. +49-40-209401-37 0x0200 512
FF_TECHNICAL The result consists of digits only, i.e. all separators are eliminated and the vanity codes are resolved into digits. The number can thus be passed on to technical devices, for example. All other flags (except FF_DIALTONECODE) are ignored. FF_DIALTONECODE should always be used together with this flag. 37 0x0400 1024

Unless otherwise specified, the flags can be combined in any way. For your convenience there are 4 flags that combine some of the above:

Flag Description Example Internal representation Integer
FF_SHORT Make the number as short as possible and separate the remaining ranges with a hyphen '-'. The code for obtaining an outside line is not prefixed to the telephone number.
(corresponds to: FF_DELIMITER_DASH)
-37 0x0000 0
FF_MEDIUM Like FF_SHORT, but the area code is always displayed (if one is available).
(corresponds to: FF_DELIMITER_DASH | FF_DISPLAY_AREACODE)
040-209401-37 0x0008 8
FF_MEDIUM_AREAEMPH Like FF_MEDIUM, the area code is additionally highlighted by brackets. The individual parts of the number are separated by blanks. The extension number is separated by a hyphen.
(corresponds to: FF_DELIMITER_SPACE | FF_EXTENSION_DELIMITER_DASH | FF_DISPLAY_AREACODE | FF_EMPHASIZE_AREACODE)
(040) 209401-37 0x002D 45
FF_LONG Like FF_MEDIUM, additionally the country code is always displayed.
(corresponds to: FF_DELIMITER_DASH | FF_DISPLAY_AREACODE | FF_DISPLAY_COUNTRYCODE)
0049-40-209401-37 0x0018 24
FF_EXCHANGE Formatting for exchange with mobile phones
(corresponds to: FF_INTL_FORMAT | FF_DELIMITER_NONE | FF_RESOLVE_VANITY)
+494020940137 0x0283 643
FF_TAPI Format of the TAPI
(corresponds to: FF_DISPLAY_AREACODE | FF_DISPLAY_COUNTRYCODE | FF_DELIMITER_NONE | FF_RESOLVE_VANITY)
00494020940137 0x009B 155